//package com.ants.platform.core.plugins.ftp;
//
//import org.apache.commons.net.ftp.FTPClient;
//import org.apache.commons.net.ftp.FTPFile;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.stereotype.Service;
//
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * ==== FTP 文件上传下载 FTP、NNTP、SMTP、POP3、Telnet、TFTP、Finger、Whois、rexec/rcmd/rlogin、Time (rdate) and Daytime、Echo、Discard、NTP/SNTP ===
// * <dependency>
// * <groupId>commons-net</groupId>
// * <artifactId>commons-net</artifactId>
// * <version>${commons-net-version}</version>
// * </dependency>
// * 上传文件、下载文件、目录遍历、删除文件
// * Created by liushun on 2016/7/21.
// */
//@Service
//public class FtpManager extends FtpParams implements FtpClient {
//
//    private static final Logger logger = LoggerFactory.getLogger(FtpManager.class);
//
//    /**
//     * 遍历目录
//     *
//     * @param folder 目录
//     * @return
//     */
//    public List<FTPFile> loooFile(String folder) {
//        if (ftp == null) InitFTPClient();
//        List list = null;
//        try {
//            list = new ArrayList();
//            if (folder != null)
//                ftp.changeWorkingDirectory(folder);
//            FTPFile[] ftpFiles = ftp.listFiles();
//            for (FTPFile file : ftpFiles)
//                list.add(file);
//        } catch (IOException e) {
//            logger.error("FTP > 连接失败!" + e.getMessage());
//            this.ftp = null;
//        }
//        return list;
//    }
//
//    /**
//     * 上传文件到ftp
//     *
//     * @param fileName 本地文件路径
//     * @param newName  服务器新名称
//     * @param folder   文件夹目录
//     * @return
//     */
//    public boolean upload(String fileName, String newName, String folder) {
//        if (this.ftp == null) InitFTPClient();
//        File file = new File(fileName);
//        try {
//            FileInputStream fileInputStream = new FileInputStream(file);
//            if (folder != null)
//                ftp.changeWorkingDirectory(folder);
//            ftp.setBufferSize(1024);
//            ftp.setControlEncoding("utf-8");
//            ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
//            ftp.storeFile(newName, fileInputStream);
//        } catch (Exception e) {
//            logger.error("FTP > 上传文件失败!" + e.getMessage());
//            this.ftp = null;
//        }
//        return false;
//    }
//
//    public boolean upload(String fileName, String folder) {
//        String newName = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
//        return upload(fileName, newName, folder);
//    }
//
//    public boolean upload(String fileName) {
//        String newName = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
//        return upload(fileName, newName, null);
//    }
//
//
//    /**
//     * 删除文件
//     *
//     * @param fileName 文件名名称
//     * @param folder   文件目录为默认为根目录
//     * @return
//     */
//    public boolean deleteFile(String fileName, String folder) {
//        if (this.ftp == null) InitFTPClient();
//        try {
//            if (folder != null)
//                ftp.changeWorkingDirectory(folder);
//            ftp.deleteFile(fileName);
//        } catch (IOException e) {
//            logger.error("FTP > 删除文件异常!" + e.getMessage());
//            this.ftp = null;
//            return false;
//        }
//        return true;
//    }
//
//    public boolean deleteFile(String fileName) {
//        return deleteFile(fileName, null);
//    }
//
//    /**
//     * 删除空目录
//     */
//    public boolean deleteFolder(String folder) {
//        if (this.ftp == null) InitFTPClient();
//        try {
//            ftp.removeDirectory(folder);
//        } catch (IOException ioe) {
//            ioe.printStackTrace();
//            return false;
//        }
//        return true;
//    }
//
//
//    /**
//     * 下载文件
//     *
//     * @param folder
//     * @param ftpFile
//     * @return
//     */
//    public boolean download(String folder, String ftpFile) {
//        if (this.ftp == null) InitFTPClient();
//        try {
//            boolean b = ftp.changeWorkingDirectory(ftpFile);
//            if (b) {
//                FTPFile[] ftpFiles = ftp.listFiles();
//                for (FTPFile f : ftpFiles) {
//                    String fileName = f.getName();
//                    File fo = new File(folder + ftpFile);
//                    if (!fo.exists())
//                        fo.mkdir();
//                    File file = new File(folder + ftpFile + "/" + fileName);
//                    ftp.retrieveFile(fileName, new FileOutputStream(file));
//                    logger.info(fileName + " download success ~~");
//                }
//            } else {
//                File file = new File(folder + File.separator + ftpFile);
//                ftp.retrieveFile(ftpFile, new FileOutputStream(file));
//                logger.info(ftpFile + " download success ~~");
//            }
//        } catch (Exception e) {
//            logger.error("FTP > 文件下载失败!" + e.getMessage());
//            this.ftp = null;
//            return false;
//        }
//        return true;
//    }
//
//    /**
//     * 关闭链接
//     */
//    private void colse() {
//        try {
//            ftp.disconnect();
//        } catch (IOException e) {
//            this.ftp = null;
//            logger.error("FTP > 关闭连接出现异常!" + e.getMessage());
//        }
//    }
//
//
//}
